package com.dx.financehy.http;

import java.util.Map;

/**
 * <pre>
 * @描述：
 * @作者：CLD
 * @创建时间：2020-10-18 00:29
 * </pre>
 **/
public class MultiHttpUtil extends BaseHttpUtil {

    /**
     * exec请求，通过以下参数获取数据
     *
     * @param url 请求地址
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url) {
        return exec(customHttpMethod, url, null, getDefaultContentType(), null);
    }

    /**
     * exec请求，通过以下参数获取数据
     *
     * @param url    请求地址
     * @param header 请求头部参数
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url, Map<String, String> header) {
        return exec(customHttpMethod, url, header, getDefaultContentType(), null);
    }


    /**
     * exec请求，通过以下参数获取数据 content-Type 默认 application/json
     *
     * @param url  请求地址
     * @param body 请求内容
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url, String body) {
        return exec(customHttpMethod, url, null, getDefaultContentType(), body);
    }

    /**
     * exec请求，通过以下参数获取数据
     *
     * @param url         请求地址
     * @param contentType 请求内容体类型
     * @param body        请求内容
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url, String contentType, String body) {
        return exec(customHttpMethod, url, null, contentType, body);
    }

    /**
     * exec请求，通过以下参数获取数据 content-Type 默认 application/json
     *
     * @param url    请求地址
     * @param header 请求头部参数
     * @param body   请求内容
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url, Map<String, String> header, String body) {
        return exec(customHttpMethod, url, header, getDefaultContentType(), body);
    }

    /**
     * exec请求，通过以下参数获取数据
     *
     * @param url         请求地址
     * @param header      请求头部参数
     * @param contentType 请求内容体类型
     * @param body        请求内容
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url, Map<String, String> header, String contentType, String body) {
        return exec(url, customHttpMethod, header, contentType, body);
    }

    /**
     * exec请求，通过以下参数获取数据(form提交)
     *
     * @param url    请求地址
     * @param header 请求头部参数
     * @param param  请求内容
     * @return
     */
    public static String exec(CustomHttpMethod customHttpMethod, String url, Map<String, String> header, Map<String, Object> param) {
        return exec(url, customHttpMethod, header, HttpConstants.CONTENT_TYPE_FORM, param);
    }

}
